TypeScriptのControl Flow Analysis
versionを重ねるごとに改善されていっている
v4.7
keyが変数で、obj[key]とした時にもtype guradされる
v4.6
分割代入後も判定できる
可変長引数でも判定できる
v4.5
template litearal typesでguardできる
v4.4
Control Flow Analysis of Aliased Conditions
条件式を変数に入れて、使うタイミングをずらしても機能するようになった
当時のブログ記事
これが入る以前はletとconstに差がなかった
参考
4.4、4.5、4.6の改善について